/*myshell.c*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>

void parent(int *status) {
    wait(status);
}

void split(char **arr, char *str, const char *del) { // 字符分割函数
    char *s = NULL;
    s = strtok(str, del);
    while (s != NULL) {
        *arr++ = s;
        s = strtok(NULL, del);
    }
}

int main() {
    char *args[10];
    char arg[100]; // 保存用户输入的命令
    pid_t pid;
    int status;
    while (1) {
    printf("please input command:\n");
    memset(args, 0x0, sizeof(args)); 
    // 修改 fgets 调用
    fgets(arg, sizeof(arg), stdin); 
    arg[strcspn(arg, "\n")] = '\0'; // 去除 fgets 读取的换行符
    if (strcmp("#", arg) == 0) break;
    split(args, arg, " "); 
    pid = fork();
    // 后续代码不变
     if (pid < 0) {
     	printf("fork failed\n");
        exit(0);
      } 
     else if (pid == 0) {
        if (execvp(args[0], args) == -1) { // 修正参数，补充 exit
        	printf("exec error!");
              	exit(1);
        }
        } else {
            wait(&status);
        }		
}
}
